重叠检测设置 您所在的位置:网站首页 live2d sdk 物理碰撞 重叠检测设置

重叠检测设置

2023-10-21 22:46| 来源: 网络整理| 查看: 265

重叠检测设置

最終更新: 2020年1月30日

这里将说明如何从输入的座标中获取模型的重叠检测。说明以追加到已执行[SDK载入~置入模型]的项目为前提。

也可以使用Unity的Collider来获取重叠检测,但以下是使用Cubism SDK中包含的功能时的说明。

概述

为了获取重叠检测,在Cubism SDK中使用名为Raycast的组件。

SDK包含使用该组件的、名为[Raycasting]的范例项目,因此请同时参考。/Assets/Live2D/Cubism/Samples/Raycasting

要设置Raycast,请执行以下三项。

附加一个运行Raycast的组件指定用于重叠检测的图形网格从CubismRaycaster.Raycast获取检测结果 附加一个运行Raycast的组件

将进行重叠检测、名为[CubismRaycaster]的组件附加到作为模型根的GameObject上。

指定用于重叠检测的图形网格

在[模型]/Drawables/下,置入了管理每个绘制的图形网格的GameObject。GameObject的名称是该参数的ID。

将[CubismRaycastable]附加到被视为此GameObject的重叠检测范围的那个。

从CubismRaycastable中,您可以选择附加网格的重叠检测范围。

– Bounding Box: 将围绕该网格的矩形作为重叠检测。它相比Triangles负载更轻。– Triangles : 将该网格的形状作为重叠检测。如果要准确判断范围,请设置此项。

从CubismRaycaster.Raycast获取检测结果

最后使用附加到模型根上的CubismRaycaster的Raycast(),获得重叠检测结果。

创建一个名为“CubismHitTest”的C#脚本,添加如下代码并将其附加到模型的根。

using UnityEngine; using Live2D.Cubism.Framework.Raycasting; public class CubismHitTest : MonoBehaviour { private void Update() { // Return early in case of no user interaction. if (!Input.GetMouseButtonDown(0)) { return; } var raycaster = GetComponent(); // Get up to 4 results of collision detection. var results = new CubismRaycastHit[4]; // Cast ray from pointer position. var ray = Camera.main.ScreenPointToRay(Input.mousePosition); var hitCount = raycaster.Raycast(ray, results); // Show results. var resultsText = hitCount.ToString(); for (var i = 0; i < hitCount; i++) { resultsText += "n" + results[i].Drawable.name; } Debug.Log(resultsText); } }

这样就完成了设置。

在这种状态下,如果在执行过程中于Game视图中单击附加了CubismRaycastable的网格,则会将重叠检测的结果输出到Console视图。

执行示例

3layer0layer2layer6

请问这篇文章对您有帮助吗?是否 关于本报道,敬请提出您的意见及要求。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有